namespace Brjnk.GpxExplorer.Workspace.BitmapExport
{
    using Brjnk.Common;

    /// <summary>
    /// </summary>
    public class ArrowStyle : InheritableValues
    {
        static ArrowStyle()
        {
            LabelStyle.DefineInheritableValue("ArrowType", ArrowType.None);
            LabelStyle.DefineInheritableValue("ArrowLength", 48.0);
            LabelStyle.DefineInheritableValue("ArrowThickness", 12.0);
        }

        public ArrowStyle() { }

        public ArrowStyle(ArrowStyle parent) : base(parent) { }

        public ArrowType ArrowType
        {
            get { return base.GetValue<ArrowType>("ArrowType"); }
            set { base.SetValue("ArrowType", value); }
        }

        public double ArrowLength
        {
            get { return base.GetValue<double>("ArrowLength"); }
            set { base.SetValue("ArrowLength", value); }
        }

        public double ArrowThickness
        {
            get { return base.GetValue<double>("ArrowThickness"); }
            set { base.SetValue("ArrowThickness", value); }
        }

        //Is Local properties
        public bool IsArrowTypeLocal
        {
            get { return IsLocalGetter("ArrowType"); }
            set { IsLocalSetter("ArrowType", value); }
        }

        public bool IsArrowLengthLocal
        {
            get { return IsLocalGetter("ArrowLength"); }
            set { IsLocalSetter("ArrowLength", value); }
        }

        public bool IsArrowThicknessLocal
        {
            get { return IsLocalGetter("ArrowThickness"); }
            set { IsLocalSetter("ArrowThickness", value); }
        }
    }
}